mod audio_detect;
use audio_detect::*;

// 检测音频文件的基本信息
#[tauri::command]
fn my_audio_detact(path: &str) -> Option<AudioInfo> {
    return detect_audio_info(path);
}

// 扫描文件夹下的音频文件，返回音频文件的详细信息
#[tauri::command]
fn my_audio_scan(path: &str, recursive: bool) -> Option<Vec<AudioInfo>> {
    return scan_audio_info(path, recursive);
}

// 修改音乐文件的tag信息
// 不需要修改的字段设置为空字符串
#[tauri::command]
fn my_audio_modify(path: &str, inf: AudioInfo) -> bool {
    return modify_audio_tag(path, inf);
}

#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
    tauri::Builder::default()
        .plugin(tauri_plugin_dialog::init())
        // .plugin(tauri_plugin_shell::init())
        .invoke_handler(tauri::generate_handler![
            my_audio_detact,
            my_audio_scan,
            my_audio_modify,
        ])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}
